import 'package:banyou_app/app/config/colors.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';

///带缓存的 图片组件
///[imageUrl] 图片路径
///[height] 高度
///[width]宽度
///[fit] BoxFit
class LoadNetworkImageWidget extends StatelessWidget {
  final String imageUrl; //图片地址可能是网络也可能是本地
  final double? height; //图片的高度
  final double? width; //图片的宽度
  final BoxFit? fit; //图片的缩放模式
  ///简单的列了几个使用到的,如果需要更多配置点进去源码都有写
  const LoadNetworkImageWidget(
      {required this.imageUrl, this.height, this.width, this.fit});

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        CachedNetworkImage(
            imageUrl: imageUrl,
            width: width ?? double.infinity,
            height: height,
            fit: fit ?? BoxFit.cover,
            placeholder: (
              BuildContext context,
              String url,
            ) =>
                Container(
                  height: height,
                  color: Colors.grey[200],
                  child: const Center(
                      child: CircularProgressIndicator(
                          backgroundColor: ColorConfig.app_main,
                          valueColor: AlwaysStoppedAnimation<Color>(
                              ColorConfig.bg_color))),
                ),
            errorWidget: (
              BuildContext context,
              String url,
              dynamic error,
            ) =>
                const Icon(Icons.error)),
      ],
    );
  }
}
